package pl.edu.pk.psb.bc.assembler;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.springframework.stereotype.Component;

import pl.edu.pk.psb.bc.ds.KategoriaDs;
import pl.edu.pk.psb.bc.dto.KategoriaDto;

@Component
public class KategoriaAssembler {
	//TODO zamienic metody konwertowania list i zbiorow w jedna generyczna
	
	
	public KategoriaDto konwertuj(KategoriaDs ds) {
		KategoriaDto dto = new KategoriaDto();
		dto.setId(ds.getId());
		dto.setNazwa(ds.getNazwa());
		dto.setPodkategorie(konwertujDoDto(ds.getPodkategorie()));

		return dto;
	}

	public KategoriaDs konwertuj(KategoriaDto dto) {
		KategoriaDs ds = new KategoriaDs();
		ds.setId(dto.getId());
		ds.setNazwa(dto.getNazwa());
		ds.setPodkategorie(konwertujDoDs(dto.getPodkategorie()));

		return ds;
	}

	public Set<KategoriaDto> konwertujDoDto(Set<KategoriaDs> ds) {
		Set<KategoriaDto> dto = new HashSet<KategoriaDto>();
		for (KategoriaDs kategoriaDs : ds) {
			dto.add(konwertuj(kategoriaDs));
		}

		return dto;
	}

	public Set<KategoriaDs> konwertujDoDs(Set<KategoriaDto> dto) {
		Set<KategoriaDs> ds = new HashSet<KategoriaDs>();
		for (KategoriaDto kategoriaDto : dto) {
			ds.add(konwertuj(kategoriaDto));
		}

		return ds;
	}
	
	public List<KategoriaDto> konwertujDoDto(List<KategoriaDs> ds) {
		List<KategoriaDto> dto = new ArrayList<KategoriaDto>();
		for (KategoriaDs kategoriaDs : ds) {
			dto.add(konwertuj(kategoriaDs));
		}

		return dto;
	}

	public List<KategoriaDs> konwertujDoDs(List<KategoriaDto> dto) {
		List<KategoriaDs> ds = new ArrayList<KategoriaDs>();
		for (KategoriaDto kategoriaDto : dto) {
			ds.add(konwertuj(kategoriaDto));
		}

		return ds;
	}
}
